// Room 2: Beach

#include "defines.txt"
#define temp v255
#define hook_glint_completed f250
#define score_music_completed f254
#define wave1_obj o1
#define wave2_obj o2
#define wave3_obj o3
#define wave4_obj o4
#define wave5_obj o5
#define wave6_obj o6
#define wave7_obj o7
#define wave8_obj o8
#define hook_obj o9

if (new_room) {
  load.pic(room_no);
  draw.pic(room_no);
  discard.pic(room_no);

  load.view(20);
  load.view(21);

  load.sound(score_music);

  animate.obj(wave1_obj);
  set.view(wave1_obj, 20);
  position(wave1_obj, 46, 121);
  set.priority(wave1_obj, 4);
  temp = 4;
  cycle.time(wave1_obj, temp);
  ignore.objs(wave1_obj);
  ignore.blocks(wave1_obj);
  draw(wave1_obj);

  animate.obj(wave2_obj);
  set.view(wave2_obj, 20);
  set.loop(wave2_obj, 1);
  position(wave2_obj, 96, 167);
  set.priority(wave2_obj, 4);
  temp = 3;
  cycle.time(wave2_obj, temp);
  ignore.objs(wave2_obj);
  ignore.blocks(wave2_obj);
  draw(wave2_obj);

  animate.obj(wave3_obj);
  set.view(wave3_obj, 20);
  set.loop(wave3_obj, 2);
  position(wave3_obj, 118, 156);
  set.priority(wave3_obj, 4);
  cycle.time(wave3_obj, temp);
  ignore.objs(wave3_obj);
  ignore.blocks(wave3_obj);
  draw(wave3_obj);

  animate.obj(wave4_obj);
  set.view(wave4_obj, 21);
  set.loop(wave4_obj, 0);
  set.cel(wave4_obj, 0);
  position(wave4_obj, 65, 136);
  set.priority(wave4_obj, 4);
  temp = 7;
  cycle.time(wave4_obj, temp);
  ignore.objs(wave4_obj);
  ignore.blocks(wave4_obj);
  draw(wave4_obj);

  animate.obj(wave5_obj);
  set.view(wave5_obj, 21);
  set.loop(wave5_obj, 1);
  set.cel(wave5_obj, 0);
  position(wave5_obj, 65, 115);
  set.priority(wave5_obj, 4);
  cycle.time(wave5_obj, temp);
  ignore.objs(wave5_obj);
  ignore.blocks(wave5_obj);
  draw(wave5_obj);

  animate.obj(wave6_obj);
  set.view(wave6_obj, 21);
  set.loop(wave6_obj, 2);
  set.cel(wave6_obj, 0);
  position(wave6_obj, 89, 102);
  set.priority(wave6_obj, 4);
  cycle.time(wave6_obj, temp);
  ignore.objs(wave6_obj);
  ignore.blocks(wave6_obj);
  draw(wave6_obj);

  animate.obj(wave7_obj);
  set.view(wave7_obj, 21);
  set.loop(wave7_obj, 3);
  set.cel(wave7_obj, 0);
  position(wave7_obj, 138, 94);
  set.priority(wave7_obj, 4);
  cycle.time(wave7_obj, temp);
  ignore.objs(wave7_obj);
  ignore.blocks(wave7_obj);
  draw(wave7_obj);

  animate.obj(wave8_obj);
  set.view(wave8_obj, 21);
  set.loop(wave8_obj, 4);
  set.cel(wave8_obj, 0);
  position(wave8_obj, 60, 105);
  set.priority(wave8_obj, 4);
  cycle.time(wave8_obj, temp);
  ignore.objs(wave8_obj);
  ignore.blocks(wave8_obj);
  draw(wave8_obj);

  if (obj.in.room(hook, room_no)) {
    load.view(22);
    animate.obj(hook_obj);
    set.view(hook_obj, 22);
    set.cel(hook_obj, 2);
    position(hook_obj, 148, 119);
    set.priority(hook_obj, 4);
    temp = 1;
    cycle.time(hook_obj, temp);
    ignore.objs(hook_obj);
    ignore.blocks(hook_obj);
    draw(hook_obj);
    stop.cycling(hook_obj);
  }

  set(hook_glint_completed);

  if ((prev_room_no == opening_screen || prev_room_no == 0)) {
    position(ego, 91, 109);
    status.line.on();
    accept.input();
  }

  load.view(0);
  load.view(1);
  load.view(2);
  load.view(3);
  draw(ego);
  show.pic();
}

if (obj.in.room(hook, room_no)) {
  random(0, 35, temp);
  if (hook_glint_completed && temp == 1) {
    set.cel(hook_obj, 0);
    end.of.loop(hook_obj, hook_glint_completed);
  }
}

if (ego_on_water) {
  set.view(ego, 1);
}
else {
  set.view(ego, 0);
}
if ((posn(ego, 61, 104, 67, 116) ||
     posn(ego, 82, 130, 111, 167) ||
     posn(ego, 100, 133, 135, 151) ||
     posn(ego, 101, 83, 133, 95) ||
     posn(ego, 134, 83, 159, 92) ||
     posn(ego, 131, 159, 159, 167))) {
  set.view(ego, 1);
}
if ((posn(ego, 67, 167, 82, 167) || ego_touching_signal_line)) {
  set.view(ego, 2);
}
if ((posn(ego, 12, 83, 45, 167) || posn(ego, 46, 130, 68, 167)) && (!ego_touching_signal_line)) {
  set.view(ego, 3);
}

if (said("look")) {
  print("This is the beach where your short adventure has begun. The hot sand feels soft under your feet. A small stream from the east merges into the sea.");
}

if ((said("look", "grass") || said("look", "foliage"))) {
  print("You can see small patches of grass on the ground and at the base of some rocks.");
}

if (said("look", "stream")) {
  print("The stream flows gently into the sea.");
}

if ((said("look", "beach") || said("look", "down"))) {
  if (obj.in.room(hook, room_no)) {
    print("There seems to be a small object lying on the ground.");
  }
  else {
    print("You see beautiful hot sand.");
  }
}

if ((said("look", "object") ||
     said("look", "ground", "rol") ||
     said("look", "beach", "rol") ||
     said("look", "object", "ground", "rol") ||
     said("look", "object", "beach", "rol") ||
     said("look", "ground", "object", "rol") ||
     said("look", "beach", "object", "rol") ||
     said("look", "shimmering", "object", "rol") ||
     said("look", "object", "shimmering", "rol"))) {
  if (obj.in.room(hook, room_no)) {
    if (posn(ego, 140, 117, 159, 123)) {
      print("You inspect the object on the ground. It looks like a fishing hook.");
    } else {
      print("You see a small, shimmering object on the ground, but you need to be closer to see it in detail.");
    }
  }
  else {
    reset(input_parsed);
  }
}

if (said("look", "hook")) {
  if (!has(hook)) {
    print("Pick it up first.");
  }
  else {
    reset(input_parsed);
  }
}

if ((said("get", "object") ||
     said("get", "object", "ground", "rol") ||
     said("get", "object", "beach", "rol") ||
     said("get", "ground", "object", "rol") ||
     said("get", "beach", "object", "rol") ||
     said("get", "shimmering", "object", "rol") ||
     said("get", "object", "shimmering", "rol"))) {
  if (obj.in.room(hook, room_no)) {
    if (posn(ego, 140, 117, 159, 123)) {
      print("You bend down to pick up the small, shimmering object. It appears to be a fishing hook.");
      get(hook);
      erase(hook_obj);
      score += 1;
      sound(score_music, score_music_completed);
    } else {
      print("You're not close enough.");
    }
  }
  else {
    reset(input_parsed);
  }
}

if (said("get", "hook")) {
  if (obj.in.room(hook, room_no)) {
    if (posn(ego, 140, 117, 159, 123)) {
      print("You pick up the fishing hook.");
      get(hook);
      erase(hook_obj);
      score += 1;
      sound(score_music, score_music_completed);
    } else {
      print("You're not close enough.");
    }
  }
  else {
    print("There was only one hook on the ground and you already picked it up.");
  }
}

if (ego_edge_code == right_edge) {
  new.room(stream);
}

return();